Prof(a) Débora  C.  M.  Saade,  D.Sc.
                                                                                                                                                      TESTES
Como estamos trabalhando com o Linux/Ubuntu não se deve esquecer que para entrar em uma pasta você terá que digitar "cd
Primeiro passo: entrar na tela TERMINAL, para quem não trabalha com o linux, basta apertar as três teclas simultaneamente: CTRL+ALT+T. Também pode na parte de busca digitar terminal, como pode ser verificado na figura.
Segundo passo: vamos entrar na pasta que contém o exemplo1 que será analisado e simulado pela turma. Dessa forma, favor digitar: cd Exercicios e depois digitar: cd Exemplo1. Não esquecer que as primeiras letras das pastas são sempre em letras maíusculas para diferenciar dos arquivos em que todas as letras são mínusculas.
Terceiro passo: ir no icone em formato de ARQUIVO e procurar entrar na pasta Exemplo1, como já apresentado anteriormente na descrição dos projetos. Nessa pasta você deve clicar com o botão direito do mouse em cima do arquivo "exemplo1.tcl", procurando abrí-lo com o editor de texto para analisarmos o código escrito.
Quarto passo: reconhecer as linhas do arquivo "exemplo1.tcl" que alteram a taxa de transmissão do nó N0 e como alterá-la.
       # Criando um tráfego CBR e concetando ao udp0
       # Portanto o tráfego gerado é = 8bits * 1000bytes/interval - se a variável interval é 0.01s, teremos 8000/0,01 = 800k bits/s - menor que 1Mbit/s do canal, ou seja,
sem perdas de pacotes. Porém, se tivermos a variável interval com 0,006, teremos 8000/0,006 = 1,33M bits/s, sendo o tráfego gerado maior que 1Mbit/s do canal, ou seja, vai gerar perdas de pacotes.
        set cbr0 [new Application/Traffic/CBR]
        $cbr0 set packetSize_ 1000
        $cbr0 set interval_ 0.0051
        $cbr0 attach-agent $udp0
Quinto passo: reconhecer as linhas do arquivo "exemplo1.tcl" que executam os programas GAWK, NAM e o XGRAPH.
       #Executar gawk para gerar informações de vazão, atrasos e pacotes retiradas do arquivo de TRACE VAPkt que serão mostradas na tela.
        exec gawk -f resultados-exemplo1.awk out-VAPkt.tr &
       #Executar Xgraph no arquivo de TRACE. Visualizar o gráfico da vazão do UDP ao longo do tempo.
        exec xgraph out-xgraph.tr -geometry 700x400 &
       #Executar NAM no arquivo de TRACE
        exec nam out.nam &
Sexto passo: voltar ao TERMINAL no caminho $/ Exercicios/Exemplo1 e digitar "ns exemplo1.tcl".
Sétimo passo: após verificar todas as informações geradas com o NAM, o GAWK e o XGRAPH, voltar ao icone ARQUIVO e entrar na pasta Exemplo1 para verificar os arquivos criados.
Oitavo passo: com o editor de texto, você deve abrir o arquivo "out-VAPkt.tr" e verificar seu formato com as informações já passadas no curso de NS2.
Nono passo: abrir o arquivo "resultados-exemplo1.awk" e procurar entender a estrutura de código que lê o arquivo "out-VAPkt.tr".
Décimo passo: abrir o arquivo "exemplo1.tcl" e alterar o valor da variável "interval" para 0.01 como apresentado no "Terceiro passo" destes testes.
Décimo Primeiro passo: ir ao TERMINAL e digitar "ns exemplo1.tcl" e observar as alterações nas informações geradas em todos os programas: XGRAPH, NAM e GAWK. Dessa forma, observamos que o gargalo é retirado na transmissão da informação.
Décimo Segundo passo: vamos verificar que o buffer padrão do NS2 é 50 pacotes, para isso abra o arquivo "exemplo1.tcl" com um editor e volte a variável interval para 0,0051; como inicialmente
testado (ver Terceiro Passo);
Depois entre no TERMINAL e digite "ns exemplo1.tcl".
Verifique e anote os pacotes recebidos, pacotes perdidos e atraso.
Volte ao editor e coloque a seguinte linha $ns queue-limit $n0 $n1 50 que vai definir o tamanho do buffer em 50 bytes, coloque no lugar indicado abaixo, e depois, volte em
TERMINAL e digite "ns exemplo1.tcl" .
       #Crinado um link duplex entre os nós. O DropTail significa que o primeiro a entrar e o primeiro a sair ou ser descartado se houver gargalo.
        $ns duplex-link $n0 $n1 1Mb 10ms DropTail
       #Criando um agente UDP e concetando ao nó N0
        set udp0 [new Agent/UDP]
        $ns attach-agent $n0 $udp0
       # Inserir aqui:
       $ns queue-limit $n0 $n1 50
       # Criando um tráfego CBR e concetando ao udp0
        ###############         ################         #################         ##############         ##############         ##############         ##############         ##############        
Primeiro passo: entrar na tela TERMINAL e buscar o caminho que contém o exemplo2 que será analisado e simulado pela turma. Dessa forma, favor digitar: cd Exercicios e depois digitar: cd Exemplo2. Não esquecer que as primeiras letras das pastas são sempre em letras maíusculas para diferenciar dos arquivos em que todas as letras são mínusculas.
        Observação: caso ainda esteja na pasta onde executou o exemplo1, basta primeiro digitar "cd ..", voltando para a pasta Exercicios e depois digitar: cd Exemplo2.Dentro dessa pasta vamos executar o "exemplo2.tcl", basta digitar: ns exemplo2.tcl.
Segundo passo: verificar e anotar os dados fornecidos na tela após executar o comando "ns exemplo2.tcl", para os links nó N0 ao N2 (TCP/FTP), link nó N1 ao N2 (UDP/CBR) e do gargalo N2 ao N3. Vale destacar que o primeiro teste considera o TCP no modo Tahoe, pois esse é o padrão do simulador se o usuário não indica que modo quer operar o TCP.
Terceiro passo: abrir o arquivo out-all.tr que contém todas as informações juntas de todos os links para observar o envio e recebimento dos ACK(40 bytes) da origem nó N0 até o nó N3, passando pelo nó N2. Pode ser visto que no início o nó N0 envia um pacote TCP para o nó N2 que transfere para o nó N3, esse por sua vez responde com um ACK.
Quarto passo: ir no icone em formato de ARQUIVO e procurar entrar na pasta Exemplo2, como já apresentado anteriormente na descrição dos projetos. Nessa pasta você deve clicar com o botão direito do mouse em cima do arquivo "exemplo2.tcl", procurando abrí-lo com o editor de texto para analisarmos o código escrito.
Quinto passo: reconhecer as linhas do arquivo "exemplo2.tcl" que alteram a forma de trabalho do TCP e entender como alterá-la. Abaixo como elas aparecem e devem ser alteradas no arquivo.
        #Ajustando a conecção TCP, nessa parte você pode alterar a forma do TCP operar, ou seja, se na linha "set tcp [new Agent/TCP]" estiver ajustado desse modo teremos o TCP do tipo Tahoe, se a linha for
       #alterada para set tcp [new Agent/TCP/Reno] teremos o segundo tipo de TCP que no caso é Reno e por último se a linha for alterada para set tcp [new Agent/TCP/Vegas] teremos o TCP Vegas operando na
       #simulação.
Sexto passo: reconhecer as linhas do arquivo "exemplo2.tcl" que executam os programas GAWK, NAM e o XGRAPH.
Sétimo passo: Alterar a linha de software no "exemplo2.tcl" e salvá-lo, para simular o TCP na versão Reno, logo em seguida executar o comando "ns exemplo2.tcl" na tela TERMINAL.
Oitavo passo: Alterar a linha de software no "exemplo2.tcl" e salvá-lo, para simular o TCP na versão Vegas, logo em seguida executar o comando "ns exemplo2.tcl" na tela TERMINAL.
Com todas as três simulações, retornar a primeira página (Home) e ler sobre os três tipos de TCP. Depois tentar relacionar os textos apresentados com os resultados da simulação e no final responder qual dos três você usária nessa transmissão, informando seus motivos.
(1) Desenvolver no exemplo2 uma transmissão nos dois sentidos ao mesmo tempo (full-duplex).
(2) Melhorar os arquivos awk relacionados as leituras de informações dos traces do tráfego TCP, pois os atuais foram feitos muito rapidamente e não consideram entre outras coisas a vazão gerada pelos ACKs (40 bytes).
(3) Realizar uma depuração detalhada nas linhas de códigos para encontrar pequenas falhas que ainda geram erros durante a simulação como aparece nas figuras, vale destacar que esses pequenos erros
não estão comprometendo as simulações.
(4) Criar variáveis mais claras e detalhadas nos programas.
(5) Desenvolver os exemplos com taxas de transmissão da ordem de Gbits.
(6) Simular o TCP/Vegas com mais tempo, ou seja, ampliar a janela de testes para 15segundos ou mais para verificar se a vazão aumenta.
(7) Por último, mas não menos importante, procurar acertar o HTML para que ele se ajuste automaticamente em qualquer tamanho de tela sem alterar o formato das páginas.